package collection.map;

import collection.Printer;
import org.junit.Test;

import java.util.Map;
import java.util.TreeMap;

/**
 * 1.TreeMap并不是基于hash实现的；基于红黑树实现（实现NavigableMap接口）
 * 2.TreeMap没有调优选项，因为红黑树总处于平衡状态。
 * 3.适用于按自然顺序或自定义顺序遍历键（key）
 * 4.在遇到null时，会抛出NullPointerException异常
 * 5.非线程安全
 * 6.HashMap通常比TreeMap快一点（树和哈希表的数据结构使然），建议多使用HashMap,在需要排序的Map时候才用TreeMap.
 * 7.HashMap:适用于在Map中插入、删除和定位元素； Treemap:适用于按自然顺序或自定义顺序遍历键（key）。
 * 参考自：https://blog.csdn.net/xlgen157387/article/details/47907721
 */
public class TreeMapTest {
    @Test
    public void testAdd() {
        Map<String, String> map = new TreeMap<String, String>();

        map.put("1", "111");
        map.put("2", "");
        map.put("", "3");
        /*map.put(null, "444");
        map.put(null, "555");
        map.put("6", null);
        map.put("7", null);*/
        map.put("0", "3");
        map.put("9", "3");
        Printer.printMap(map);

        map.get("1");
    }


    @Test
    public void test2(){
        Map<String, String> map = new TreeMap<>();
        map.put("rra","aaa");
        map.put("bf","aaa");
        map.put("gc","aaa");
        System.out.println(map);
    }
}
